package club.jdiy.utils;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;

/**
 * 日期与时间相关操作工具类
 *
 * @author ziquee(子秋) QQ号:39886616 主页: http://www.jdiy.club
 * @version 20200517
 */
@SuppressWarnings("unused")
public final class DateUtils {
    private DateUtils() {
    }

    /**
     * 获取某天的整数表示(即 yyyyMMdd的整数形式)
     *
     * @param temporal 指定日期
     * @return 该日期的　yyyyMMdd整数形式
     */
    public static int intDay(TemporalAccessor temporal) {
        return Integer.parseInt(fmt_yyyyMMdd.format(temporal));
    }

    /**
     * 获取今天的整数表示(即 yyyyMMdd的整数形式)
     *
     * @return 今天的　yyyyMMdd整数形式
     */
    public static int intDay() {
        return intDay(0);
    }

    /**
     * 获取某天的整数表示(即 yyyyMMdd的整数形式)
     *
     * @param T 与今天的位移，例如：T=-1 表示昨天,　T=0 表示今天, T=1 表示明天
     * @return yyyyMMdd的整数形式
     */
    public static int intDay(int T) {
        return intDay(LocalDate.now().plusDays(T));
    }

    private static final DateTimeFormatter fmt_yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd");
    public static final DateTimeFormatter fmt_date = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    public static final DateTimeFormatter fmt_datetime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

}
